// 没有return语句
// function* generator() {
// 	yield 'hello'
// }
// const gen = generator()
// console.log(gen.next()); //{ value: 'hello', done: false }
// console.log(gen.next()); //{ value: undefined, done: true }

// 没有yield表达式
// function* foo() {
// 	console.log('hello');
// 	console.log('world');
// }
// const f = foo()
// console.log(f);
// console.log(f.next());
// hello
// world
// { value: undefined, done: true }

// 与return相比
// function common() {
// 	console.log('开始执行');
// }
// const foo = common() //开始执行

// function* generator() {
// 	console.log('开始执行');
// }
// const gen = generator()
// gen.next() //开始执行

// yield的使用位置
// function testYield1() {
// 	yield 'hello'
// }
// const test = testYield1() //SyntaxError: Unexpected string


function* testYield2() {
	// console.log('Hello ' + yield); //SyntaxError: Unexpected identifier
	// console.log('Hello ' + yield 'World'); //SyntaxError: Unexpected identifier

	console.log('Hello ' + (yield));
	console.log('Hello ' + (yield 'World'));
}
const gen = testYield2()
console.log(gen.next());
console.log(gen.next());
console.log(gen.next());
